﻿// 类型转换
#include<iostream>
using namespace std;
class A
{
public:
	A(int a1)
		:_a1(a1)
	{}
	int Get() const
	{
		return _a1 + _a2;
	}
private:
	int _a1 = 10;
	int _a2 = 5;
};

class B
{
public:
	B(const A& a)// B类的构造函数
		:_b(a.Get())
	{}
	void Print()
	{
		cout << _b << endl;
	}
private:
	int _b = 0;
};

int main()
{
	A aa1 = 2;

	// aa1 被传给B类的构造函数，来构造⼀个B的临时对象，再⽤这个临时对象拷⻉构造bb1
	B bb1 = aa1;
	bb1.Print();
	return 0;
}


//// 匿名对象
//#include<iostream>
//using namespace std;
//class Solution 
//{
//public:
//	int Sum_Solution(int n) 
//	{
//		cout << n << endl;
//		return n;
//	}
//};
//
//int main()
//{
//	Solution s1;
//	s1.Sum_Solution(10);
//
//	// 匿名对象可以创建同时调用成员函数
//	Solution().Sum_Solution(10);
//	return 0;
//}